package com.ljr.common.factory.data;

import android.support.annotation.StringRes;

/**
 * Created by 林佳荣 on 2018/4/23.
 * Github：https://github.com/ljrRookie
 * Function ：数据源接口定义
 */

public interface DataSource {
    /**
     * 同时包括了成功与失败的回调接口
     */
    interface Callback<T> extends SucceedCallback<T>, FailedCallback{

    }
    /**
     * 只关注成功的接口
     *
     * @param <T> 任意类型
     */
    interface SucceedCallback<T> {
        // 数据加载成功, 网络请求成功
        void onDataLoaded(T t);

    }

    /**
     * 只关注失败的接口
     */
    interface FailedCallback {
        // 数据加载失败, 网络请求失败
        void onDataNotAvailable(@StringRes int strRes);
    }

    /**
     * 销毁操作
     */
    void dispose();
}
